package com.fire.control.system.module.notice.service;

import com.fire.control.system.dto.UserDTO;
import com.fire.control.system.standard.BusinessInterfaceStandard;
import com.fire.control.system.support.protocol.comman.ResponseProtocol;
import com.fire.control.system.support.protocol.notice.NoticeRequestProtocol;

/**
 * 
 * @ClassName:  NoticeService
 * @Description:  消息通知服务接口
 * @author:  xiechengguang
 * @date:  2017年6月9日 下午7:00:24
 *
 */
public interface NoticeService extends BusinessInterfaceStandard<NoticeRequestProtocol, ResponseProtocol> {
	
	/**
	 * @author: xiechengguang 
	 * @Title: getNoticeList   
	 * @Description: 获取消息列表，分页显示  
	 * @param:        
	 * @return: ResponseProtocol      
	 * @throws
	 */
	public ResponseProtocol getNoticeList(NoticeRequestProtocol request, UserDTO user);
	
	/**
	 * @author: xiechengguang 
	 * @Title: addNotice   
	 * @Description: 添加消息通知  
	 * @param:        
	 * @return: ResponseProtocol      
	 * @throws
	 */
	public ResponseProtocol addNotice(NoticeRequestProtocol request, UserDTO user);
	
	/**
	 * @author: xiechengguang 
	 * @Title: getNoticeInfo   
	 * @Description: 消息通知详细  
	 * @param:        
	 * @return: ResponseProtocol      
	 * @throws
	 */
	public ResponseProtocol getNoticeInfo(NoticeRequestProtocol request);
	
	/**
	 * @author: xiechengguang 
	 * @Title: sendNoticeDetail   
	 * @Description: 发送消息 详细（定时器调用）
	 * @param:        
	 * @return: void      
	 * @throws
	 */
	public void sendNoticeDetail(String noticeId);
		
	/**
	 * @author: xiechengguang 
	 * @Title: updateNotice   
	 * @Description: 修改消息通知  
	 * @param:        
	 * @return: ResponseProtocol      
	 * @throws
	 */
	public ResponseProtocol updateNotice(NoticeRequestProtocol request, UserDTO user);
	
	/**
	 * @author: xiechengguang 
	 * @Title: deleteNotice   
	 * @Description: 删除消息通知，实际上修改status   
	 * @param:        
	 * @return: ResponseProtocol      
	 * @throws
	 */
	public ResponseProtocol deleteNotice(NoticeRequestProtocol request);
	
	/**
	 * @author: xiechengguang 
	 * @Title: searchNotices   
	 * @Description: 根据条件搜索消息通知  
	 * @param:        
	 * @return: ResponseProtocol      
	 * @throws
	 */
	public ResponseProtocol searchNotices(NoticeRequestProtocol request, UserDTO user);
	
}
